//
// File:	Sound.hpp
// Author:	Thomas TISSOT-DUPONT
// Login:	<thomas.tissotdupont@free.fr>
//
// Created:	28/04/2010 at 03:03:56
// Purpose:	
//
#ifndef SOUND_HPP
#define SOUND_HPP
#include <SFML/Audio.hpp>
#include "ISound.hpp"

class Sound : public ISound, private sf::Sound
{
public:
						Sound();
						~Sound();

public:
	bool				LoadFromFile(const std::string &filename);

public:
	void				Play();
	void				Stop();
	void				Pause();

public:
	void				Mute();
	void				UnMute();

public:
	void				Update();

public:
	void				Remove();
	bool				IsRemoved() const;

public:
	void				SetLoop(bool);

public:
	void				SetX(float);
	void				SetY(float);
	void				SetVolume(float);
	void				SetSpatializable(bool);
	float				GetX() const;
	float				GetY() const;
	float				GetVolume() const;
	bool				IsSpatializable() const;

private:
	bool				m_bRemoved;
	float				m_flMutedVolume;
	bool				m_bIsMuted;
	sf::Vector2f		m_vfPosition;
	bool				m_bSpatializable;
};

#endif //!SOUND_HPP
